Make the WinDbg/TTD version a setting instead of downloading the latest (Fix #1130) - #1140
Merged
Conversation
…latest (Fix #1130) The latest WinDbg release (1.2606.22001.0) crashes the DbgEng TTD adapter on stop (#1129). The installer now downloads a pinned version (1.2603.20001.0) directly by URL, and falls back to the latest version via the appinstaller manifest if the pinned download fails. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Since we install a pinned WinDbg version rather than the latest release, there is nothing to check online. The latest-version query was reduced to returning a compile-time constant, but it still went through a background thread, an FFI call and a subprocess that spawned the installer CLI to parse its JSON output. Worse, the check itself became wrong: IsVersionUpToDate() compared with >=, so a user who already had the broken 1.2606.22001.0 installed - exactly the population hit by #1129/#1130 - was told they were up to date and never offered the fix. Remove GetLatestVersion(), IsVersionUpToDate() and CompareVersions() from the installer library, the check-update CLI command and its exit code 2, the core/FFI/API GetLatestVersion() plumbing along with the now-unused subprocess and JSON helpers, and the dialog's async version fetch. The pinned version moves to windbg_version.h so the UI can display it directly. The dialog now compares the installed version against that constant and offers Reinstall when they match and Install when they do not - not Update, since replacing a newer WinDbg with the validated one is a downgrade. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
Tested on Windows with both Binary Ninja Commercial and Ultimate (binaryninja_win64_5.4.10384-test_*). Verified that the installer downloads the pinned WinDbg version (1.2603.20001.0) and falls back to the latest available version when the pinned version is unavailable. |
…nload The earlier commits on this branch pinned the version in a header but still kept the old "download whatever Microsoft released last" path around as a fallback, which is a lot of code for a path we do not want taken. Replace both with a single `debugger.windbgVersion` setting: - the installer takes `--windbg-version <ver>` and builds the MSIX bundle URL directly from it, defaulting to `kDefaultVersion` in the new installer/windbg_version.h - the core passes the setting's value when it launches the installer, so a different released version can be installed without a new build - the appinstaller manifest download, XML parsing and version comparison are gone, along with the `check-update` command and the `GetWinDbgLatestVersion` FFI/API - the dialog compares the installed version against the setting instead of querying Microsoft in a background thread Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…nshot Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
plafosse
approved these changes
Aug 14, 2026
Member
|
Discussed some findings in DM, nothing necessitates changes at the moment though. |
Member
Author
|
We will want to do #1177 now that we delete deprecated APIs |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The latest WinDbg release (
1.2606.22001.0) crashes the DbgEng TTD adapter on stop (#1129), so the installer no longer downloads whatever is newest.Changes
debugger.windbgVersionsetting, defaulting to the validated1.2603.20001.0. The installer downloads that version's MSIX bundle directly by URL.check-updatecommand, and theGetWinDbgLatestVersionFFI/API.Install WinDbg/TTDdialog now compares the installed version against the setting and offers Install/Reinstall, with no online check.To adopt a newer WinDbg once validated, bump
kDefaultVersionininstaller/windbg_version.h. Users can already install any other released version via the setting, without a new build.